package com.xmy.erp.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 学生所在班级与课程（分班表）
 * </p>
 *
 * @author hpiggy
 * @since 2023-09-09
 */
@TableName("student_grade")
@ApiModel(value = "StudentGrade对象", description = "学生所在班级与课程（分班表）")
public class StudentGrade implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("id")
    private Long id;

    @ApiModelProperty("对应报名订单id")
    private Long orderDetailId;

    private Long studentId;

    @ApiModelProperty("对应学校id")
    private Long schoolId;

    @ApiModelProperty("班级id")
    private Long gradeId;

    @ApiModelProperty("课程id")
    private Long courseId;

    @ApiModelProperty("科目id")
    private Long subjectsId;

    @ApiModelProperty("年级")
    private Integer yearClassId;

    @ApiModelProperty("创建人id")
    private Long createdId;

    @ApiModelProperty("结束日期(结班日期)")
    private LocalDate endDate;

    @ApiModelProperty("总课时（已作废）")
    private Integer allCourseCount;

    @ApiModelProperty("使用课时")
    private Integer useCourseCount;

    @ApiModelProperty("剩余课时（已作废）")
    private Integer residueCourseCount;

    @ApiModelProperty("1正常,2（转课）调班转出，3订单作废，4（转校）转出")
    private Integer status;

    @ApiModelProperty("1在读，2转课（调班转出），3退费，4停课，5结课,6结班")
    private Integer readingStatus;

    @ApiModelProperty("续班老师id,加这个字段是为了计算转班情况下，续班算哪在个老师身上，如剩余课时大于2次课，算在转班后老师身上，如剩余课时小于等于2次课算在原来老师身上(此字段作废)")
    private Long renewTeacherId;

    @ApiModelProperty("年份")
    private Integer yearPart;

    @ApiModelProperty("报读季度")
    private Integer quarterNum;

    @ApiModelProperty("进入班级时课程时的剩余课程")
    private Integer surplusCourseNum;

    @ApiModelProperty("是否属于应续人数")
    private Integer isRenew;

    @ApiModelProperty("停课日期")
    private LocalDate stopCourseDate;

    @ApiModelProperty("课时状态，与真实的剩余课时是否一致，1正常，0异常")
    private Integer courseStatus;

    @ApiModelProperty("是否预分班")
    private Integer isPresort;

    @ApiModelProperty("是否最后一条")
    private Integer isLast;

    @ApiModelProperty("是否补课（跨学期补课，统计率要排除掉）")
    private Integer isMakeup;

    @ApiModelProperty("是否核对课时")
    private Integer isCheckHouse;

    private Integer deleted;

    @ApiModelProperty("created_at")
    private LocalDateTime createdAt;

    @ApiModelProperty("updated_at")
    private LocalDateTime updatedAt;

    @ApiModelProperty("deleted_at")
    private LocalDateTime deletedAt;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public Long getOrderDetailId() {
        return orderDetailId;
    }

    public void setOrderDetailId(Long orderDetailId) {
        this.orderDetailId = orderDetailId;
    }
    public Long getStudentId() {
        return studentId;
    }

    public void setStudentId(Long studentId) {
        this.studentId = studentId;
    }
    public Long getSchoolId() {
        return schoolId;
    }

    public void setSchoolId(Long schoolId) {
        this.schoolId = schoolId;
    }
    public Long getGradeId() {
        return gradeId;
    }

    public void setGradeId(Long gradeId) {
        this.gradeId = gradeId;
    }
    public Long getCourseId() {
        return courseId;
    }

    public void setCourseId(Long courseId) {
        this.courseId = courseId;
    }
    public Long getSubjectsId() {
        return subjectsId;
    }

    public void setSubjectsId(Long subjectsId) {
        this.subjectsId = subjectsId;
    }
    public Integer getYearClassId() {
        return yearClassId;
    }

    public void setYearClassId(Integer yearClassId) {
        this.yearClassId = yearClassId;
    }
    public Long getCreatedId() {
        return createdId;
    }

    public void setCreatedId(Long createdId) {
        this.createdId = createdId;
    }
    public LocalDate getEndDate() {
        return endDate;
    }

    public void setEndDate(LocalDate endDate) {
        this.endDate = endDate;
    }
    public Integer getAllCourseCount() {
        return allCourseCount;
    }

    public void setAllCourseCount(Integer allCourseCount) {
        this.allCourseCount = allCourseCount;
    }
    public Integer getUseCourseCount() {
        return useCourseCount;
    }

    public void setUseCourseCount(Integer useCourseCount) {
        this.useCourseCount = useCourseCount;
    }
    public Integer getResidueCourseCount() {
        return residueCourseCount;
    }

    public void setResidueCourseCount(Integer residueCourseCount) {
        this.residueCourseCount = residueCourseCount;
    }
    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getReadingStatus() {
        return readingStatus;
    }

    public void setReadingStatus(Integer readingStatus) {
        this.readingStatus = readingStatus;
    }
    public Long getRenewTeacherId() {
        return renewTeacherId;
    }

    public void setRenewTeacherId(Long renewTeacherId) {
        this.renewTeacherId = renewTeacherId;
    }
    public Integer getYearPart() {
        return yearPart;
    }

    public void setYearPart(Integer yearPart) {
        this.yearPart = yearPart;
    }
    public Integer getQuarterNum() {
        return quarterNum;
    }

    public void setQuarterNum(Integer quarterNum) {
        this.quarterNum = quarterNum;
    }
    public Integer getSurplusCourseNum() {
        return surplusCourseNum;
    }

    public void setSurplusCourseNum(Integer surplusCourseNum) {
        this.surplusCourseNum = surplusCourseNum;
    }
    public Integer getIsRenew() {
        return isRenew;
    }

    public void setIsRenew(Integer isRenew) {
        this.isRenew = isRenew;
    }
    public LocalDate getStopCourseDate() {
        return stopCourseDate;
    }

    public void setStopCourseDate(LocalDate stopCourseDate) {
        this.stopCourseDate = stopCourseDate;
    }
    public Integer getCourseStatus() {
        return courseStatus;
    }

    public void setCourseStatus(Integer courseStatus) {
        this.courseStatus = courseStatus;
    }
    public Integer getIsPresort() {
        return isPresort;
    }

    public void setIsPresort(Integer isPresort) {
        this.isPresort = isPresort;
    }
    public Integer getIsLast() {
        return isLast;
    }

    public void setIsLast(Integer isLast) {
        this.isLast = isLast;
    }
    public Integer getIsMakeup() {
        return isMakeup;
    }

    public void setIsMakeup(Integer isMakeup) {
        this.isMakeup = isMakeup;
    }
    public Integer getIsCheckHouse() {
        return isCheckHouse;
    }

    public void setIsCheckHouse(Integer isCheckHouse) {
        this.isCheckHouse = isCheckHouse;
    }
    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }
    public LocalDateTime getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
    public LocalDateTime getDeletedAt() {
        return deletedAt;
    }

    public void setDeletedAt(LocalDateTime deletedAt) {
        this.deletedAt = deletedAt;
    }

    @Override
    public String toString() {
        return "StudentGrade{" +
            "id=" + id +
            ", orderDetailId=" + orderDetailId +
            ", studentId=" + studentId +
            ", schoolId=" + schoolId +
            ", gradeId=" + gradeId +
            ", courseId=" + courseId +
            ", subjectsId=" + subjectsId +
            ", yearClassId=" + yearClassId +
            ", createdId=" + createdId +
            ", endDate=" + endDate +
            ", allCourseCount=" + allCourseCount +
            ", useCourseCount=" + useCourseCount +
            ", residueCourseCount=" + residueCourseCount +
            ", status=" + status +
            ", readingStatus=" + readingStatus +
            ", renewTeacherId=" + renewTeacherId +
            ", yearPart=" + yearPart +
            ", quarterNum=" + quarterNum +
            ", surplusCourseNum=" + surplusCourseNum +
            ", isRenew=" + isRenew +
            ", stopCourseDate=" + stopCourseDate +
            ", courseStatus=" + courseStatus +
            ", isPresort=" + isPresort +
            ", isLast=" + isLast +
            ", isMakeup=" + isMakeup +
            ", isCheckHouse=" + isCheckHouse +
            ", deleted=" + deleted +
            ", createdAt=" + createdAt +
            ", updatedAt=" + updatedAt +
            ", deletedAt=" + deletedAt +
        "}";
    }
}
